Los alumnos se dividieron en 2 grupos:
El listado completo de ejercicios puede verse acá: https://richom.github.io/pbits-exercises/
❋ Algunas secuencias de ejercicios son incrementales, es decir que se puede reutilizar gran parte de la solución al ejercicio anterior. Por eso puede haber casos donde un ejercicio en teoría más complejo termina teniendo menor tiempo de resolución que su predecesor.
❋ Hasta el ejercicio 34 fueron resueltos por ambos grupos.❋ Del 35 al 54 sólo fueron resueltos por el grupo Martes.❋ Y del 55 en adelante ningún grupo llegó a resolver ejercicios.
❋ Para estimar el tamaño estamos midiendo la cantidad de bloques usados en cada una de las soluciones a los ejercicios.
❋ Para estimar la atención de cada alumno estamos calculando: working_seconds / total_seconds.❋ IMPORTANTE: total_seconds es la sumatoria del tiempo total de la actividad (incluyendo todos los encuentros que el alumno haya asistido). working_seconds es el resultado de substraer del total aquellos tiempos muertos donde no se registraron eventos durante un período mayor a 1 min.❋ Un valor cercano a 1 implica que el alumno no se distrajo en ningún momento, y un valor cercano a 0 significa que perdió el tiempo.
❋ Acá calculamos, para cada alumno, la cantidad de ejercicios que pudo resolver por hora.❋ En el resumen se ve que en promedio la eficiencia fue muy parecida entre ambos grupos. Sin embargo, cuando se analiza cada encuentro por separado se puede observar que aunque en el primer encuentro el grupo "Jueves" muestra una eficiencia superior, en los próximos encuentros su eficiencia media está siempre por debajo del "Martes", incrementándose la brecha sobre todo en el último encuentro (donde la eficiencia del grupo "Martes" fue más del triple que el "Jueves").❋ También es notable lo rápido que baja la eficiencia en ambos grupos. Tiene sentido considerando el incremento en dificultad de los ejercicios.
❋ Este gráfico es muy parecido al anterior que muestra el tiempo de resolución de cada ejercicio. Tiene sentido que se parezcan considerando que cada modificación lleva tiempo...
❋ Obviamente el grupo de los "Martes" tuvo muchas más ejecuciones que los "Jueves".
❋ Cada cambio al programa provoca una compilación automática. En este caso estamos midiendo sólo compilaciones exitosas, los errores de compilación son excluidos (igual son minoría: apenas 0.3%)❋ El tiempo entre compilaciones es muy similar tanto entre ejercicios como entre grupos, lo cual parece sugerir que los alumnos trabajaron aproximadamente al mismo ritmo.
❋ Acá la diferencia es esperable porque el grupo de los Jueves tenía configurado el entorno sin interactividad. Entonces, cada ejecución del programa tuvo que provenir del usuario haciendo click en el botón de "Ejecutar". En cambio, los alumnos de los Martes tenían configurado el entorno de forma que cada cambio al programa se ejecute automáticamente en el robot.❋ Aunque sea un resultado obvio me parece importante destacarlo para mostrar la diferencia que implica la interactividad en la forma de trabajar: el costo de probar los programas es mucho menor, entonces tenés ejecuciones más frecuentes, rápidas, y más progreso.
❋ Lógicamente, el grupo de los "Martes" tardó en general muchísimo menos en ejecutar el programa por primera vez.❋ Un caso llamativo es el primer ejercicio que en el grupo de los "Martes" tiene un valor mucho mayor que el resto. Supongo que se deberá a que los alumnos estaban empezando a familiarizarse con el entorno y tardaron en conectar el arduino. Pero ya en los ejercicios siguientes lo dejaron conectado mientras trabajaban en el programa.❋ Este gráfico puede ser útil para mostrar que el tiempo entre empezar a trabajar en resolver un problema hasta tener un programa corriendo en el robot es mínimo (segundos vs minutos).